//package com.anivia.common.web.config.columnPermission;
//
//import cn.hutool.extra.spring.SpringUtil;
//import com.anivia.common.web.enums.DataHandlerBizEnum;
//import com.anivia.common.web.model.vo.DataFieldVO;
//import com.anivia.common.web.privoder.DataHandlerProvider;
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.beans.factory.NoSuchBeanDefinitionException;
//
//import java.util.List;
//
///**
// * 数据字段权限上下文
// *
// * @author wangj
// */
//@Slf4j
//public class DataFieldContext {
//    private static final ThreadLocal<DataFieldVO> DATA_SCOPE = new InheritableThreadLocal<>();
//
//    /**
//     * 开启数据权限，默认为公共业务
//     *
//     * @param dataScopeBiz 业务
//     */
//    public static void start(DataHandlerBizEnum dataScopeBiz) {
//        DataFieldVO vo = new DataFieldVO();
//        vo.setOpenFieldPermission(true);
//
//        DataHandlerProvider provider = null;
//        try {
//            provider = SpringUtil.getBean(DataHandlerProvider.class);
//        } catch (NoSuchBeanDefinitionException e) {
//            throw new RuntimeException("当前服务未实现DataHandlerProvider，数据字段级权限功能无法使用。");
//        }
//        // 获取数据字段没有权限的配置
//        List<String> list = provider.getFieldNoPermissionExpression(dataScopeBiz);
//        vo.setNoPermissionExpression(list);
//        DATA_SCOPE.set(vo);
//    }
//
//    /**
//     * 关闭数据权限
//     */
//    public static void close() {
//        DATA_SCOPE.remove();
//    }
//
//    /**
//     * 查询配置
//     */
//    public static DataFieldVO get() {
//        if (DATA_SCOPE.get() == null) {
//            return new DataFieldVO();
//        }
//        return DATA_SCOPE.get();
//    }
//}